{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Cats_Vs_Dogs.ipynb",
      "provenance": [],
      "collapsed_sections": [],
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "accelerator": "GPU"
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/PacktPublishing/Modern-Computer-Vision-with-PyTorch/blob/master/Chapter04/Cats_Vs_Dogs.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "gZJwTIH_HYLC",
        "outputId": "5465cb74-47bd-4b11-e8a7-f35a5774819a",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "source": [
        "import torchvision\n",
        "import torch.nn as nn\n",
        "import torch\n",
        "import torch.nn.functional as F\n",
        "from torchvision import transforms,models,datasets\n",
        "import matplotlib.pyplot as plt\n",
        "from PIL import Image\n",
        "import numpy as np\n",
        "from torch import optim\n",
        "device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
        "import cv2, glob, numpy as np, pandas as pd\n",
        "import matplotlib.pyplot as plt\n",
        "%matplotlib inline\n",
        "from glob import glob\n",
        "!pip install torchsummary"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Requirement already satisfied: torchsummary in /usr/local/lib/python3.6/dist-packages (1.5.1)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "oe0zo-GZHbBQ"
      },
      "source": [
        "!pip install -q kaggle"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0X1u0qd0HuDe",
        "outputId": "65e48a11-019a-4602-fec5-15b3adc752e9",
        "colab": {
          "resources": {
            "http://localhost:8080/nbextensions/google.colab/files.js": {
              "data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7Ci8vIE1heCBhbW91bnQgb2YgdGltZSB0byBibG9jayB3YWl0aW5nIGZvciB0aGUgdXNlci4KY29uc3QgRklMRV9DSEFOR0VfVElNRU9VVF9NUyA9IDMwICogMTAwMDsKCmZ1bmN0aW9uIF91cGxvYWRGaWxlcyhpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IHN0ZXBzID0gdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKTsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIC8vIENhY2hlIHN0ZXBzIG9uIHRoZSBvdXRwdXRFbGVtZW50IHRvIG1ha2UgaXQgYXZhaWxhYmxlIGZvciB0aGUgbmV4dCBjYWxsCiAgLy8gdG8gdXBsb2FkRmlsZXNDb250aW51ZSBmcm9tIFB5dGhvbi4KICBvdXRwdXRFbGVtZW50LnN0ZXBzID0gc3RlcHM7CgogIHJldHVybiBfdXBsb2FkRmlsZXNDb250aW51ZShvdXRwdXRJZCk7Cn0KCi8vIFRoaXMgaXMgcm91Z2hseSBhbiBhc3luYyBnZW5lcmF0b3IgKG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGJyb3dzZXIgeWV0KSwKLy8gd2hlcmUgdGhlcmUgYXJlIG11bHRpcGxlIGFzeW5jaHJvbm91cyBzdGVwcyBhbmQgdGhlIFB5dGhvbiBzaWRlIGlzIGdvaW5nCi8vIHRvIHBvbGwgZm9yIGNvbXBsZXRpb24gb2YgZWFjaCBzdGVwLgovLyBUaGlzIHVzZXMgYSBQcm9taXNlIHRvIGJsb2NrIHRoZSBweXRob24gc2lkZSBvbiBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcCwKLy8gdGhlbiBwYXNzZXMgdGhlIHJlc3VsdCBvZiB0aGUgcHJldmlvdXMgc3RlcCBhcyB0aGUgaW5wdXQgdG8gdGhlIG5leHQgc3RlcC4KZnVuY3Rpb24gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpIHsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIGNvbnN0IHN0ZXBzID0gb3V0cHV0RWxlbWVudC5zdGVwczsKCiAgY29uc3QgbmV4dCA9IHN0ZXBzLm5leHQob3V0cHV0RWxlbWVudC5sYXN0UHJvbWlzZVZhbHVlKTsKICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5leHQudmFsdWUucHJvbWlzZSkudGhlbigodmFsdWUpID0+IHsKICAgIC8vIENhY2hlIHRoZSBsYXN0IHByb21pc2UgdmFsdWUgdG8gbWFrZSBpdCBhdmFpbGFibGUgdG8gdGhlIG5leHQKICAgIC8vIHN0ZXAgb2YgdGhlIGdlbmVyYXRvci4KICAgIG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSA9IHZhbHVlOwogICAgcmV0dXJuIG5leHQudmFsdWUucmVzcG9uc2U7CiAgfSk7Cn0KCi8qKgogKiBHZW5lcmF0b3IgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIGJldHdlZW4gZWFjaCBhc3luYyBzdGVwIG9mIHRoZSB1cGxvYWQKICogcHJvY2Vzcy4KICogQHBhcmFtIHtzdHJpbmd9IGlucHV0SWQgRWxlbWVudCBJRCBvZiB0aGUgaW5wdXQgZmlsZSBwaWNrZXIgZWxlbWVudC4KICogQHBhcmFtIHtzdHJpbmd9IG91dHB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIG91dHB1dCBkaXNwbGF5LgogKiBAcmV0dXJuIHshSXRlcmFibGU8IU9iamVjdD59IEl0ZXJhYmxlIG9mIG5leHQgc3RlcHMuCiAqLwpmdW5jdGlvbiogdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKSB7CiAgY29uc3QgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRJZCk7CiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gZmFsc2U7CgogIGNvbnN0IG91dHB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChvdXRwdXRJZCk7CiAgb3V0cHV0RWxlbWVudC5pbm5lckhUTUwgPSAnJzsKCiAgY29uc3QgcGlja2VkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBpbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHsKICAgICAgcmVzb2x2ZShlLnRhcmdldC5maWxlcyk7CiAgICB9KTsKICB9KTsKCiAgY29uc3QgY2FuY2VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgaW5wdXRFbGVtZW50LnBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY2FuY2VsKTsKICBjYW5jZWwudGV4dENvbnRlbnQgPSAnQ2FuY2VsIHVwbG9hZCc7CiAgY29uc3QgY2FuY2VsUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBjYW5jZWwub25jbGljayA9ICgpID0+IHsKICAgICAgcmVzb2x2ZShudWxsKTsKICAgIH07CiAgfSk7CgogIC8vIENhbmNlbCB1cGxvYWQgaWYgdXNlciBoYXNuJ3QgcGlja2VkIGFueXRoaW5nIGluIHRpbWVvdXQuCiAgY29uc3QgdGltZW91dFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9LCBGSUxFX0NIQU5HRV9USU1FT1VUX01TKTsKICB9KTsKCiAgLy8gV2FpdCBmb3IgdGhlIHVzZXIgdG8gcGljayB0aGUgZmlsZXMuCiAgY29uc3QgZmlsZXMgPSB5aWVsZCB7CiAgICBwcm9taXNlOiBQcm9taXNlLnJhY2UoW3BpY2tlZFByb21pc2UsIHRpbWVvdXRQcm9taXNlLCBjYW5jZWxQcm9taXNlXSksCiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdzdGFydGluZycsCiAgICB9CiAgfTsKCiAgaWYgKCFmaWxlcykgewogICAgcmV0dXJuIHsKICAgICAgcmVzcG9uc2U6IHsKICAgICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICAgIH0KICAgIH07CiAgfQoKICBjYW5jZWwucmVtb3ZlKCk7CgogIC8vIERpc2FibGUgdGhlIGlucHV0IGVsZW1lbnQgc2luY2UgZnVydGhlciBwaWNrcyBhcmUgbm90IGFsbG93ZWQuCiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKCiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7CiAgICBjb25zdCBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CiAgICBsaS5hcHBlbmQoc3BhbihmaWxlLm5hbWUsIHtmb250V2VpZ2h0OiAnYm9sZCd9KSk7CiAgICBsaS5hcHBlbmQoc3BhbigKICAgICAgICBgKCR7ZmlsZS50eXBlIHx8ICduL2EnfSkgLSAke2ZpbGUuc2l6ZX0gYnl0ZXMsIGAgKwogICAgICAgIGBsYXN0IG1vZGlmaWVkOiAkewogICAgICAgICAgICBmaWxlLmxhc3RNb2RpZmllZERhdGUgPyBmaWxlLmxhc3RNb2RpZmllZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbi9hJ30gLSBgKSk7CiAgICBjb25zdCBwZXJjZW50ID0gc3BhbignMCUgZG9uZScpOwogICAgbGkuYXBwZW5kQ2hpbGQocGVyY2VudCk7CgogICAgb3V0cHV0RWxlbWVudC5hcHBlbmRDaGlsZChsaSk7CgogICAgY29uc3QgZmlsZURhdGFQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7CiAgICAgICAgcmVzb2x2ZShlLnRhcmdldC5yZXN1bHQpOwogICAgICB9OwogICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7CiAgICB9KTsKICAgIC8vIFdhaXQgZm9yIHRoZSBkYXRhIHRvIGJlIHJlYWR5LgogICAgbGV0IGZpbGVEYXRhID0geWllbGQgewogICAgICBwcm9taXNlOiBmaWxlRGF0YVByb21pc2UsCiAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgYWN0aW9uOiAnY29udGludWUnLAogICAgICB9CiAgICB9OwoKICAgIC8vIFVzZSBhIGNodW5rZWQgc2VuZGluZyB0byBhdm9pZCBtZXNzYWdlIHNpemUgbGltaXRzLiBTZWUgYi82MjExNTY2MC4KICAgIGxldCBwb3NpdGlvbiA9IDA7CiAgICB3aGlsZSAocG9zaXRpb24gPCBmaWxlRGF0YS5ieXRlTGVuZ3RoKSB7CiAgICAgIGNvbnN0IGxlbmd0aCA9IE1hdGgubWluKGZpbGVEYXRhLmJ5dGVMZW5ndGggLSBwb3NpdGlvbiwgTUFYX1BBWUxPQURfU0laRSk7CiAgICAgIGNvbnN0IGNodW5rID0gbmV3IFVpbnQ4QXJyYXkoZmlsZURhdGEsIHBvc2l0aW9uLCBsZW5ndGgpOwogICAgICBwb3NpdGlvbiArPSBsZW5ndGg7CgogICAgICBjb25zdCBiYXNlNjQgPSBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgY2h1bmspKTsKICAgICAgeWllbGQgewogICAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgICBhY3Rpb246ICdhcHBlbmQnLAogICAgICAgICAgZmlsZTogZmlsZS5uYW1lLAogICAgICAgICAgZGF0YTogYmFzZTY0LAogICAgICAgIH0sCiAgICAgIH07CiAgICAgIHBlcmNlbnQudGV4dENvbnRlbnQgPQogICAgICAgICAgYCR7TWF0aC5yb3VuZCgocG9zaXRpb24gLyBmaWxlRGF0YS5ieXRlTGVuZ3RoKSAqIDEwMCl9JSBkb25lYDsKICAgIH0KICB9CgogIC8vIEFsbCBkb25lLgogIHlpZWxkIHsKICAgIHJlc3BvbnNlOiB7CiAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgIH0KICB9Owp9CgpzY29wZS5nb29nbGUgPSBzY29wZS5nb29nbGUgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYiA9IHNjb3BlLmdvb2dsZS5jb2xhYiB8fCB7fTsKc2NvcGUuZ29vZ2xlLmNvbGFiLl9maWxlcyA9IHsKICBfdXBsb2FkRmlsZXMsCiAgX3VwbG9hZEZpbGVzQ29udGludWUsCn07Cn0pKHNlbGYpOwo=",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/javascript"
                ]
              ],
              "status": 200,
              "status_text": ""
            }
          },
          "base_uri": "https://localhost:8080/",
          "height": 88
        }
      },
      "source": [
        "from google.colab import files\n",
        "\n",
        "files.upload()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "\n",
              "     <input type=\"file\" id=\"files-36ef7c40-9410-4ef3-9dbb-6884fcebdb63\" name=\"files[]\" multiple disabled />\n",
              "     <output id=\"result-36ef7c40-9410-4ef3-9dbb-6884fcebdb63\">\n",
              "      Upload widget is only available when the cell has been executed in the\n",
              "      current browser session. Please rerun this cell to enable.\n",
              "      </output>\n",
              "      <script src=\"/nbextensions/google.colab/files.js\"></script> "
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "Saving kaggle.json to kaggle.json\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "{'kaggle.json': b'{\"username\":\"kishorea\",\"key\":\"f0bd77235bde8d9f794645060af5cc95\"}'}"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 3
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "gYLNu_PmHvrw",
        "outputId": "139fe17c-da51-4a85-ad5b-c3b85823ba45",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "source": [
        "!mkdir -p ~/.kaggle\n",
        "!cp kaggle.json ~/.kaggle/\n",
        "!ls ~/.kaggle\n",
        "!chmod 600 /root/.kaggle/kaggle.json"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "kaggle.json\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "fNtNYspNH1w8",
        "outputId": "c0a95a93-5ced-4975-e234-b1ac4d416261",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "source": [
        "!kaggle datasets download -d tongpython/cat-and-dog"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "401 - Unauthorized\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "OlWBNBJDIBRm",
        "outputId": "7db81004-5423-461c-e93a-f70584fac104",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "source": [
        "!ls"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "cat-and-dog.zip  kaggle.json  sample_data\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "RypubxpJIG2q"
      },
      "source": [
        "!unzip cat-and-dog.zip"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "VNqQI-XzIKff"
      },
      "source": [
        "train_data_dir = '/content/training_set/training_set'\n",
        "test_data_dir = '/content/test_set/test_set'"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "S-8dbU4XISHJ"
      },
      "source": [
        "from torch.utils.data import DataLoader, Dataset\n",
        "class cats_dogs(Dataset):\n",
        "  def __init__(self, folder):\n",
        "    cats = glob(folder+'/cats/*.jpg')\n",
        "    dogs = glob(folder+'/dogs/*.jpg')\n",
        "    self.fpaths = cats + dogs\n",
        "    from random import shuffle, seed; seed(10); shuffle(self.fpaths)\n",
        "    self.targets = [fpath.split('/')[-1].startswith('dog') for fpath in self.fpaths] # dog=1 & cat=0\n",
        "  def __len__(self): return len(self.fpaths)\n",
        "  def __getitem__(self, ix):\n",
        "    f = self.fpaths[ix]\n",
        "    target = self.targets[ix]\n",
        "    im = (cv2.imread(f)[:,:,::-1])\n",
        "    im = cv2.resize(im, (224,224))\n",
        "    return torch.tensor(im/255).permute(2,0,1).to(device).float(), torch.tensor([target]).float().to(device)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "nGxhBQggIcNW"
      },
      "source": [
        "data = cats_dogs(train_data_dir)\n",
        "im, label = data[200]"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "kTyJzmDMwcXE",
        "outputId": "77667ea1-64d7-4ab6-9445-d394bfb22243",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "source": [
        "len(data)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "8005"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 15
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "9a9uj77QIlQ1",
        "outputId": "dd20dc7b-a73a-428e-f921-03809fc41227",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 286
        }
      },
      "source": [
        "plt.imshow(im.permute(1,2,0).cpu())\n",
        "print(label)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "tensor([1.], device='cuda:0')\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "kywWRmTNIm7k"
      },
      "source": [
        "def conv_layer(ni,no,kernel_size,stride=1):\n",
        "    return nn.Sequential(\n",
        "    nn.Conv2d(ni, no, kernel_size, stride),\n",
        "    nn.ReLU(),\n",
        "    nn.BatchNorm2d(no),\n",
        "    nn.MaxPool2d(2)\n",
        "    )\n",
        "def get_model():\n",
        "    model = nn.Sequential(\n",
        "    conv_layer(3, 64, 3),\n",
        "    conv_layer(64, 512, 3),\n",
        "    conv_layer(512, 512, 3),\n",
        "    conv_layer(512, 512, 3),\n",
        "    conv_layer(512, 512, 3),\n",
        "    conv_layer(512, 512, 3),\n",
        "    nn.Flatten(),\n",
        "    nn.Linear(512, 1),\n",
        "    nn.Sigmoid(),\n",
        "    ).to(device)\n",
        "    loss_fn = nn.BCELoss()\n",
        "    optimizer = torch.optim.Adam(model.parameters(), lr= 1e-3)\n",
        "    return model, loss_fn, optimizer"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "WjrTv37xIz_A"
      },
      "source": [
        "from torchsummary import summary\n",
        "model, loss_fn, optimizer = get_model()\n",
        "summary(model, input_size=(3, 224, 224))"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "UVsBwFkjI48S"
      },
      "source": [
        "def train_batch(x, y, model, opt, loss_fn):\n",
        "    prediction = model(x)\n",
        "    batch_loss = loss_fn(prediction, y)\n",
        "    batch_loss.backward()\n",
        "    optimizer.step()\n",
        "    optimizer.zero_grad()\n",
        "    return batch_loss.item()\n",
        "\n",
        "@torch.no_grad()\n",
        "def accuracy(x, y, model):\n",
        "    prediction = model(x)\n",
        "    is_correct = (prediction > 0.5) == y\n",
        "    return is_correct.cpu().numpy().tolist()"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "l80rVbvaJLBI"
      },
      "source": [
        "def get_data():     \n",
        "    train = cats_dogs(train_data_dir)\n",
        "    trn_dl = DataLoader(train, batch_size=32, shuffle=True, drop_last = True)\n",
        "    val = cats_dogs(test_data_dir)\n",
        "    val_dl = DataLoader(val, batch_size=32, shuffle=True, drop_last = True)\n",
        "    return trn_dl, val_dl"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "5bhjyNCwJXZo"
      },
      "source": [
        "@torch.no_grad()\n",
        "def val_loss(x, y, model):\n",
        "    prediction = model(x)\n",
        "    val_loss = loss_fn(prediction, y)\n",
        "    return val_loss.item()"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "hjqRne6lJZzI"
      },
      "source": [
        "trn_dl, val_dl = get_data()\n",
        "model, loss_fn, optimizer = get_model()"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "O9PTqGRiPhsR",
        "outputId": "88b0363c-0cc9-4228-ef5f-289b75fa3da4",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "source": [
        "1"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "1"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 54
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "MNuosfV_JbQT",
        "outputId": "feafb71e-4f3c-46a2-9cdd-f871dc365628",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 102
        }
      },
      "source": [
        "train_losses, train_accuracies = [], []\n",
        "val_losses, val_accuracies = [], []\n",
        "for epoch in range(5):\n",
        "    \n",
        "    print(epoch)\n",
        "    train_epoch_losses, train_epoch_accuracies = [], []\n",
        "    val_epoch_accuracies = []\n",
        "    for ix, batch in enumerate(iter(trn_dl)):\n",
        "        #print(ix)\n",
        "        x, y = batch\n",
        "        batch_loss = train_batch(x, y, model, optimizer, loss_fn)\n",
        "        train_epoch_losses.append(batch_loss)        \n",
        "    train_epoch_loss = np.array(train_epoch_losses).mean()\n",
        "\n",
        "    for ix, batch in enumerate(iter(trn_dl)):\n",
        "        x, y = batch\n",
        "        is_correct = accuracy(x, y, model)\n",
        "        train_epoch_accuracies.extend(is_correct)\n",
        "    train_epoch_accuracy = np.mean(train_epoch_accuracies)\n",
        "\n",
        "    for ix, batch in enumerate(iter(val_dl)):\n",
        "        x, y = batch\n",
        "        val_is_correct = accuracy(x, y, model)\n",
        "        val_epoch_accuracies.extend(val_is_correct)\n",
        "        #validation_loss = val_loss(x, y, model)\n",
        "    val_epoch_accuracy = np.mean(val_epoch_accuracies)\n",
        "\n",
        "    train_losses.append(train_epoch_loss)\n",
        "    train_accuracies.append(train_epoch_accuracy)\n",
        "    #val_losses.append(validation_loss)\n",
        "    val_accuracies.append(val_epoch_accuracy)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "0\n",
            "1\n",
            "2\n",
            "3\n",
            "4\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "hdsPmDLtJhq9",
        "outputId": "b0593617-1a3e-48eb-c30f-af29268abc3b",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "source": [
        "len(train_epoch_accuracies)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "8000"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 24
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "t5GJK058L9Fl",
        "outputId": "bf157142-f450-4143-a366-1c62bcf4824e",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        }
      },
      "source": [
        "len(train_epoch_accuracies[0])"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "1"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 25
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "nBLke0QtJorn",
        "outputId": "fd973d4f-01e8-4eac-9b6c-366b62012762",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 295
        }
      },
      "source": [
        "epochs = np.arange(5)+1\n",
        "import matplotlib.ticker as mtick\n",
        "import matplotlib.pyplot as plt\n",
        "import matplotlib.ticker as mticker\n",
        "%matplotlib inline\n",
        "plt.plot(epochs, train_accuracies, 'bo', label='Training accuracy')\n",
        "plt.plot(epochs, val_accuracies, 'r', label='Validation accuracy')\n",
        "plt.gca().xaxis.set_major_locator(mticker.MultipleLocator(1))\n",
        "plt.title('Training and validation accuracy with 4K data points used for training')\n",
        "plt.xlabel('Epochs')\n",
        "plt.ylabel('Accuracy')\n",
        "#plt.ylim(0.8,1)\n",
        "plt.gca().set_yticklabels(['{:.0f}%'.format(x*100) for x in plt.gca().get_yticks()]) \n",
        "plt.legend()\n",
        "plt.grid('off')\n",
        "plt.show()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "S-7t6shaJtiA"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "14e4OnrDGGvT"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "pR8MBk8AGGyu"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "6K2unIVDJtkv"
      },
      "source": [
        "from torch.utils.data import DataLoader, Dataset\n",
        "class cats_dogs(Dataset):\n",
        "  def __init__(self, folder):\n",
        "    cats = glob(folder+'/cats/*.jpg')\n",
        "    dogs = glob(folder+'/dogs/*.jpg')\n",
        "    self.fpaths = cats[:500] + dogs[:500]\n",
        "    from random import shuffle, seed; seed(10); shuffle(self.fpaths)\n",
        "    self.targets = [fpath.split('/')[-1].startswith('dog') for fpath in self.fpaths] # dog=1 & cat=0\n",
        "  def __len__(self): return len(self.fpaths)\n",
        "  def __getitem__(self, ix):\n",
        "    f = self.fpaths[ix]\n",
        "    target = self.targets[ix]\n",
        "    im = (cv2.imread(f)[:,:,::-1])\n",
        "    im = cv2.resize(im, (224,224))\n",
        "    return torch.tensor(im/255).permute(2,0,1).to(device).float(), torch.tensor([target]).float().to(device)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "-TZzyy6GGMVz"
      },
      "source": [
        "trn_dl, val_dl = get_data()\n",
        "model, loss_fn, optimizer = get_model()"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "Ptp-Fw-EGOxz",
        "outputId": "a0a602d1-936f-4819-b41d-a4674f28bf7f",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 102
        }
      },
      "source": [
        "train_losses, train_accuracies = [], []\n",
        "val_losses, val_accuracies_1k = [], []\n",
        "for epoch in range(5):\n",
        "    \n",
        "    print(epoch)\n",
        "    train_epoch_losses, train_epoch_accuracies = [], []\n",
        "    val_epoch_accuracies = []\n",
        "    for ix, batch in enumerate(iter(trn_dl)):\n",
        "        #print(ix)\n",
        "        x, y = batch\n",
        "        batch_loss = train_batch(x, y, model, optimizer, loss_fn)\n",
        "        train_epoch_losses.append(batch_loss)        \n",
        "    train_epoch_loss = np.array(train_epoch_losses).mean()\n",
        "\n",
        "    for ix, batch in enumerate(iter(trn_dl)):\n",
        "        x, y = batch\n",
        "        is_correct = accuracy(x, y, model)\n",
        "        train_epoch_accuracies.extend(is_correct)\n",
        "    train_epoch_accuracy = np.mean(train_epoch_accuracies)\n",
        "\n",
        "    for ix, batch in enumerate(iter(val_dl)):\n",
        "        x, y = batch\n",
        "        val_is_correct = accuracy(x, y, model)\n",
        "        val_epoch_accuracies.extend(val_is_correct)\n",
        "        #validation_loss = val_loss(x, y, model)\n",
        "    val_epoch_accuracy = np.mean(val_epoch_accuracies)\n",
        "\n",
        "    train_losses.append(train_epoch_loss)\n",
        "    train_accuracies.append(train_epoch_accuracy)\n",
        "    #val_losses.append(validation_loss)\n",
        "    val_accuracies_1k.append(val_epoch_accuracy)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "0\n",
            "1\n",
            "2\n",
            "3\n",
            "4\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "MXfwuNKCGQ8_",
        "outputId": "be3b500c-0e7d-472a-c87f-c08af542adc0",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 310
        }
      },
      "source": [
        "epochs = np.arange(5)+1\n",
        "import matplotlib.ticker as mtick\n",
        "import matplotlib.pyplot as plt\n",
        "import matplotlib.ticker as mticker\n",
        "%matplotlib inline\n",
        "\n",
        "plt.plot(epochs, train_accuracies, 'bo', label='Training accuracy')\n",
        "plt.plot(epochs, val_accuracies_1k, 'r', label='Validation accuracy')\n",
        "plt.gca().xaxis.set_major_locator(mticker.MultipleLocator(1))\n",
        "plt.title('Training and validation accuracy \\nwith 1K total images used for training')\n",
        "plt.xlabel('Epochs')\n",
        "plt.ylabel('Accuracy')\n",
        "#plt.ylim(0.8,1)\n",
        "plt.gca().set_yticklabels(['{:.0f}%'.format(x*100) for x in plt.gca().get_yticks()]) \n",
        "plt.legend()\n",
        "plt.grid('off')\n",
        "plt.show()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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HTqQnJzMTTfdlLffQKtXr6ZHjx506dKFLl265Es8jzzyCB07dqRTp07ceacbmXLVqlX07duXTp060aVLF1atWpUvZoA//vGPvPHGG4DrCuXPf/4zXbp0YcqUKbzyyiucfPLJdOrUiQsvvJBM37awadMmBg4cSKdOnejUqRNfffUVf/nLX3jqqafy9jtmzBiefvrpEv8tTPkybhzExeWfFxfn5psYUdWov4DqwEbcIOepwCzc6EwAh/t/P8ANFH468ISf9zjQO5xjJCcna0HLli07ZF4orVtnq0sN+V9t2oS9i0Ldc889+thjj+mVV16p/fr10wMHDqiq6s6dOzUrK0tVVT/77DMdNGiQqqrOmTNH+/Xrl7dtt27ddO/evbp582Zt0qSJ7t+/X1VV69Wrl7d+gwYNdO3atZqdna2nnnqqzps3T/fs2aMJCQn6888/q6rqkCFD8vYbaPfu3bpnzx5VVV25cqXmlueMGTO0W7duunv3blVV3bp1q6qqJicn6wcffKCqqnv27NHdu3fni1lV9cYbb9TXX39dVVXbtGmjjzzySN6yLVu25L0fM2aMTpgwQVVVBw8erOPHj1dV1QMHDuiOHTv0l19+0c6dO6uqanZ2th511FH5to9UJN+L0jJnzpwyP2ZFNHGi+z8nkqNt2rhpU7SSfL+AhRrivFpWdzH1AVap6hoReQx4WFVzx+393a+TBcT5V5aIHA20VtW5ZRHgunXB726JRvvnxRdfTPXq1QHYuXMnV155JT/++CMiQlZWVtBt+vXrR+3atalduzaHH344mzZtIiEhId86Xbt2zZuXlJTE6tWriY+P56ijjsq773/o0KG8/PLLh+w/KyuLP/7xjyxZsoTq1auzcuVKAGbNmsVVV11FnP9p16RJE9LT09mwYQMDBw4E3MNn4bjkkkvy3n///feMHTuWHTt2kJGRwdlnnw3A559/zltvvQVA9erVadiwIQ0bNqRp06b897//ZdOmTXTu3JmmTZuGdUxTsQwb5l5z535hnfWVA2WVIIYA7/r37YAeIjION1D9baq6APgr8BawB7gcV3sYW0bxkZCgrF17aJKIRvtnYLe8d999N6mpqUybNo3Vq1eH/E9Ru3btvPfVq1cPev0inHVCGT9+PM2bN+fbb78lJycn7JN+oBo1apCTk5M3XfB5g8DPPXz4cKZPn06nTp144403mDt3bqH7vuaaa3jjjTfYuHEjV199dcSxGWMiF/UEISK1gAHAXQHHbAKcCpwMvCciR6nqEj8PEekJbHBvZTKudnGrqm4qsO8RwAiA5s2bH3KSadiwIenp6WHFeffd1bj55jj27DmYJOrWVe6+ey/p6SUfinbfvn3UrFmTrKws9uzZkxfX1q1b836Vv/TSS6gq6enpZGZmcuDAAdLT0/O2zd0mJyeHjIyMvOmC6wPs37+fvXv30qpVK1atWsX3339PmzZtmDhxYr71cm3evJkjjjiC3bt3M3HiRLKzs0lPT+e0007jkUceYcCAAcTFxbFt2zaaNGlCq1atePfdd+nfvz/79u0jOzubpk2bsnTpUrZs2cKePXuYNWsWKSkppKeno6pkZGTkJbFdu3ZRv359tm3bxltvvUXLli1JT0+nZ8+ejB8/nhtvvJHs7GwyMjJo2LAhffv2ZezYsRw4cICXXnop7L9rMHv37i0yIZW2jIyMMj9mRWblFZ5Zsw7nb387it9/78Xhh+/lmmt+pm/f34veMExlUYM4F1gccHJfB3zg277mi0gO0AzYDC4j4GoOQ4BngDuAROAmIN8d0ar6MvAyQEpKihb89b18+fKwu4MYMiSduDhhzBjXrHTkkTBunDBsWN3IP3EQuc1DNWvWpG7dunlx/d///R9XXnklTzzxBP369UNEqF+/PnFxcdSoUYP69evnbZu7TbVq1YiPj8+bLrg+QK1atahTpw6HH344L7zwAhdddBH16tXj5JNPpmbNmoeUy+jRo7nwwguZPHky55xzDvXq1aN+/foMGjSIlStXkpqaSq1atTjvvPN46KGHePnll7n11lv561//Ss2aNZkyZQrHHXccl1xyCd26daNt27Z06dKFOnXqUL9+fUQkX8wPPvggffr04bDDDuOUU07J67rj+eefZ8SIEUyaNInq1avzwgsv5DWb9enTh0aNGtGoUaMS/S3q1KlD586dS7SPSNn4BpGx8irapEkwfvzBZ0c2barD+PHHc9xxx5feg4WhLk6U1gtIA64KmB4J3O/ftwPW4sfG9vOuBEb799OA1kAPYHxhxynpRepdu3aFvW5Fk56erqqqOTk5ev311+uTTz5Z4n2WdXllZ2drp06ddOXKlSXel12kLv+svIrWps2hN9UU58YaCrlIHdXbR0WkHnAm7g6lXK8BR4nI9z55XOmDRETigOHAc37dJ4EZwFPAi9GMtTJ75ZVXSEpK4oQTTmDnzp1cd911sQ4pIsuWLeOYY46hT58+HHvssbEOx5hyoSweLIxqE5Oq7gaaFpi3H7gsxPqZuNtgc6fnAR2jGWNVcMstt3DLLbfEOoxiO/744/n5559jHYYx5cqRR7rntYLNLy32JLUxxlRAZfFgoSUIY4ypgIYNg5dfhjZtQERp08ZNl2bPt5YgjDGmgho2DFavhs8//4LVq0u/W3RLEMYYY4KyBBFFqampfPrpp/nmPfXUU1x//fUht+nduzcLFy4E4LzzzmPHjh2HrHPvvffy+OOPF3rs6dOns2zZsrzpv/zlL8yaNSuS8I0xVZwliCgaOnQoaWlp+ealpaUxdOjQsLafMWNGsR8KK5gg7r//fvr27VusfcWKdQtuTGxZgoiiiy66iH/+8595gwOtXr2a9evX06NHD66//npSUlI44YQTuOeee4Jun5iYyJYtWwAYN24c7dq14/TTT8/rEhwI2m32V199xUcffcTtt99OUlISq1atYvjw4UydOhWA2bNn07lzZzp27MjVV1/Nvn378o53zz330KVLFzp27MgPP/xwSEy53YLndg1eVLfgP/30k3ULbkwFVenHpM4zejQsWRJycd3sbPA9rIYtKQkCTkgFNWnShK5du/Lxxx9z/vnnk5aWxuDBgxERxo0bR5MmTcjOzqZPnz589913nHTSSUH3s2jRItLS0liyZAkHDhygS5cuJCcnAzBo0CCuvfZaAMaOHcurr77KqFGjGDBgAP379+eiiy7Kt6+9e/cyfPhwZs+eTbt27bjiiit44YUXGD16NADNmjVj8eLFPP/88zz++OP87W9/y7f94YcfzmeffUZWVhYbN25k6NChLFy4kI8//pgPP/yQb775Jq/PJoBhw4Zx5513MnDgQPbu3UtOTg5r164ttFibNm3K4sWLAddXVbDPd9NNN9GrVy+mTZuW12dTq1atGDRoEKNHjyYnJ4e0tDTmz59f6LGMMaFZDSLKApuZApuX3nvvPbp06ULnzp1ZunRpvuaggubNm8fAgQOJi4ujQYMGDBgwIG/Z999/T48ePejYsSOTJk1i6dKlhcazYsUK2rZtS7t27QC48sor+de//pW3fNCgQQAkJyezevXqQ7bPysri2muv5dRTT+Xiiy/OiztUt+C/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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "015fHiOPUCGK"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "kQlX5dk9GVzn"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "hzO3saVpGWR4"
      },
      "source": [
        "from torch.utils.data import DataLoader, Dataset\n",
        "class cats_dogs(Dataset):\n",
        "  def __init__(self, folder):\n",
        "    cats = glob(folder+'/cats/*.jpg')\n",
        "    dogs = glob(folder+'/dogs/*.jpg')\n",
        "    self.fpaths = cats[:1000] + dogs[:1000]\n",
        "    from random import shuffle, seed; seed(10); shuffle(self.fpaths)\n",
        "    self.targets = [fpath.split('/')[-1].startswith('dog') for fpath in self.fpaths] # dog=1 & cat=0\n",
        "  def __len__(self): return len(self.fpaths)\n",
        "  def __getitem__(self, ix):\n",
        "    f = self.fpaths[ix]\n",
        "    target = self.targets[ix]\n",
        "    im = (cv2.imread(f)[:,:,::-1])\n",
        "    im = cv2.resize(im, (224,224))\n",
        "    return torch.tensor(im/255).permute(2,0,1).to(device).float(), torch.tensor([target]).float().to(device)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "jC5wun4aGWVi"
      },
      "source": [
        "trn_dl, val_dl = get_data()\n",
        "model, loss_fn, optimizer = get_model()"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "W9QQxDUiGdFP",
        "outputId": "c5ed180e-913d-475f-ef8d-a4f1ccdd02cb",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 102
        }
      },
      "source": [
        "train_losses, train_accuracies = [], []\n",
        "val_losses, val_accuracies_2k = [], []\n",
        "for epoch in range(5):\n",
        "    \n",
        "    print(epoch)\n",
        "    train_epoch_losses, train_epoch_accuracies = [], []\n",
        "    val_epoch_accuracies = []\n",
        "    for ix, batch in enumerate(iter(trn_dl)):\n",
        "        #print(ix)\n",
        "        x, y = batch\n",
        "        batch_loss = train_batch(x, y, model, optimizer, loss_fn)\n",
        "        train_epoch_losses.append(batch_loss)        \n",
        "    train_epoch_loss = np.array(train_epoch_losses).mean()\n",
        "\n",
        "    for ix, batch in enumerate(iter(trn_dl)):\n",
        "        x, y = batch\n",
        "        is_correct = accuracy(x, y, model)\n",
        "        train_epoch_accuracies.extend(is_correct)\n",
        "    train_epoch_accuracy = np.mean(train_epoch_accuracies)\n",
        "\n",
        "    for ix, batch in enumerate(iter(val_dl)):\n",
        "        x, y = batch\n",
        "        val_is_correct = accuracy(x, y, model)\n",
        "        val_epoch_accuracies.extend(val_is_correct)\n",
        "        #validation_loss = val_loss(x, y, model)\n",
        "    val_epoch_accuracy = np.mean(val_epoch_accuracies)\n",
        "\n",
        "    train_losses.append(train_epoch_loss)\n",
        "    train_accuracies.append(train_epoch_accuracy)\n",
        "    #val_losses.append(validation_loss)\n",
        "    val_accuracies_2k.append(val_epoch_accuracy)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "0\n",
            "1\n",
            "2\n",
            "3\n",
            "4\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "bpI8XCB9UYIX",
        "outputId": "c4759279-0a1d-4daf-c6c7-a2b94d300218",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 310
        }
      },
      "source": [
        "epochs = np.arange(5)+1\n",
        "import matplotlib.ticker as mtick\n",
        "import matplotlib.pyplot as plt\n",
        "import matplotlib.ticker as mticker\n",
        "%matplotlib inline\n",
        "\n",
        "plt.plot(epochs, train_accuracies, 'bo', label='Training accuracy')\n",
        "plt.plot(epochs, val_accuracies_2k, 'r', label='Validation accuracy')\n",
        "plt.gca().xaxis.set_major_locator(mticker.MultipleLocator(1))\n",
        "plt.title('Training and validation accuracy \\nwith 2K total images used for training')\n",
        "plt.xlabel('Epochs')\n",
        "plt.ylabel('Accuracy')\n",
        "#plt.ylim(0.8,1)\n",
        "plt.gca().set_yticklabels(['{:.0f}%'.format(x*100) for x in plt.gca().get_yticks()]) \n",
        "plt.legend()\n",
        "plt.grid('off')\n",
        "plt.show()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "-7ESwmLiGiuJ"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "9zy3TMLSGmzC"
      },
      "source": [
        "from torch.utils.data import DataLoader, Dataset\n",
        "class cats_dogs(Dataset):\n",
        "  def __init__(self, folder):\n",
        "    cats = glob(folder+'/cats/*.jpg')\n",
        "    dogs = glob(folder+'/dogs/*.jpg')\n",
        "    self.fpaths = cats[:2000] + dogs[:2000]\n",
        "    from random import shuffle, seed; seed(10); shuffle(self.fpaths)\n",
        "    self.targets = [fpath.split('/')[-1].startswith('dog') for fpath in self.fpaths] # dog=1 & cat=0\n",
        "  def __len__(self): return len(self.fpaths)\n",
        "  def __getitem__(self, ix):\n",
        "    f = self.fpaths[ix]\n",
        "    target = self.targets[ix]\n",
        "    im = (cv2.imread(f)[:,:,::-1])\n",
        "    im = cv2.resize(im, (224,224))\n",
        "    return torch.tensor(im/255).permute(2,0,1).to(device).float(), torch.tensor([target]).float().to(device)"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "B4IhsHqhGm1w"
      },
      "source": [
        "trn_dl, val_dl = get_data()\n",
        "model, loss_fn, optimizer = get_model()"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "GoqjLjWGGsFD",
        "outputId": "13cb8a03-fe22-4eb1-869b-71488e25b9e1",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 102
        }
      },
      "source": [
        "train_losses, train_accuracies = [], []\n",
        "val_losses, val_accuracies_4k = [], []\n",
        "for epoch in range(5):\n",
        "    \n",
        "    print(epoch)\n",
        "    train_epoch_losses, train_epoch_accuracies = [], []\n",
        "    val_epoch_accuracies = []\n",
        "    for ix, batch in enumerate(iter(trn_dl)):\n",
        "        #print(ix)\n",
        "        x, y = batch\n",
        "        batch_loss = train_batch(x, y, model, optimizer, loss_fn)\n",
        "        train_epoch_losses.append(batch_loss)        \n",
        "    train_epoch_loss = np.array(train_epoch_losses).mean()\n",
        "\n",
        "    for ix, batch in enumerate(iter(trn_dl)):\n",
        "        x, y = batch\n",
        "        is_correct = accuracy(x, y, model)\n",
        "        train_epoch_accuracies.extend(is_correct)\n",
        "    train_epoch_accuracy = np.mean(train_epoch_accuracies)\n",
        "\n",
        "    for ix, batch in enumerate(iter(val_dl)):\n",
        "        x, y = batch\n",
        "        val_is_correct = accuracy(x, y, model)\n",
        "        val_epoch_accuracies.extend(val_is_correct)\n",
        "        #validation_loss = val_loss(x, y, model)\n",
        "    val_epoch_accuracy = np.mean(val_epoch_accuracies)\n",
        "\n",
        "    train_losses.append(train_epoch_loss)\n",
        "    train_accuracies.append(train_epoch_accuracy)\n",
        "    #val_losses.append(validation_loss)\n",
        "    val_accuracies_4k.append(val_epoch_accuracy)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "0\n",
            "1\n",
            "2\n",
            "3\n",
            "4\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "bukmfh4YZNTm"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "_H8xtnKTZNXb",
        "outputId": "d7d81500-cf6f-4b9e-fb17-5a2832a6745d",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 310
        }
      },
      "source": [
        "epochs = np.arange(5)+1\n",
        "import matplotlib.ticker as mtick\n",
        "import matplotlib.pyplot as plt\n",
        "import matplotlib.ticker as mticker\n",
        "%matplotlib inline\n",
        "\n",
        "plt.plot(epochs, train_accuracies, 'bo', label='Training accuracy')\n",
        "plt.plot(epochs, val_accuracies_4k, 'r', label='Validation accuracy')\n",
        "plt.gca().xaxis.set_major_locator(mticker.MultipleLocator(1))\n",
        "plt.title('Training and validation accuracy \\nwith 4K total images used for training')\n",
        "plt.xlabel('Epochs')\n",
        "plt.ylabel('Accuracy')\n",
        "#plt.ylim(0.8,1)\n",
        "plt.gca().set_yticklabels(['{:.0f}%'.format(x*100) for x in plt.gca().get_yticks()]) \n",
        "plt.legend()\n",
        "plt.grid('off')\n",
        "plt.show()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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/vY32rZtS2pqKvfffz8Aa9as4ZxzziE1NZUOHTqwZs2aQjED3Hbbbbz66quA6wplxIgRdOjQgXfeeYfx48dz6qmnkpqayuWXX84er6y8efNm+vTpQ2pqKqmpqcybN48HH3yQp556Kn+/I0eO5Omnny7x38KYimzMGEhOLjwvOdnNLy2VvpE6Ug89VCNkfV5pNfj4ZGVlMW/ePJKSkti5cydz5syhatWqTJ8+nf/7v//j3XffPWSb77//nlmzZrFr1y5at27N0KFDD7mXf/HixaxYsYImTZpw5plnMnfuXDp27Mgtt9zCF198QYsWLejfv3/QmI466ij+97//UbNmTX788Uf69+9PRkYGn3zyCf/973/55ptvSE5OZuvWrQDcdNNNjBw5kj59+rBv3z7y8vL4+eefw37uhg0bsmjRIsBVv918880APPDAA/z73//m9ttv54477qBr1668//775Obmkp2dTZMmTbjsssu46667yMvLY9KkScyfPz/q825MZeK7Lo0cCT/9pBx7rDBmTOleryxBeLKygt/dUpr1eT5XXnklSUlJAOzYsYPrrruOH3/8EREhJycn6DYXXnghNWrUoEaNGhx11FFs3ryZpk2bFlqnU6dO+fPS0tLIzMykTp06HHfccfn3/ffv359x48Ydsv+cnBxuu+02lixZQlJSEj/88AMA06dP5/rrryfZ+6nSoEEDdu3axcaNG+nTpw/gHj6LxFVXXZX/fvny5TzwwANs376d7OxszjvvPABmzpzJa6+9BkBSUhL16tWjXr16NGzYkMWLF7N582bat29Pw4YNIzqmMZXZwIHuNXv25zHp3DCmVUwiMkxEVojIchF5U0RqisirIrJORJZ4rzRv3cu9deeISENv3vEiUiaD0zdtGnzgpNKsz/Px75b3z3/+M927d2f58uV8+OGHIe/Rr1GjRv77pKSkoO0XkawTypNPPkmjRo349ttvycjIKLIRPZiqVauSl5eXPx34Wfw/96BBg3j22WdZtmwZo0aNKvLZhJtuuolXX32VV155hRtuuCHq2Iwx0YtZgvDGcr0D6KiqpwBJQD9v8b2qmua9lnjzbgdOBV4EBnjzHgUeiFWM/kaN2h/z+rxgduzYwTHHHAOQX19fmlq3bs3atWvJzMwE4K23gufbHTt20LhxY6pUqcLrr7+e35B87rnn8sorr+S3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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "ZyVpZZvvGwb8"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "0KUBhIP7PPRz"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "THl6nONYPPVQ"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "U_9RgOpLPPY_"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "DZ7GwlL8G7tI"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "5JFX-9cAG8SK",
        "outputId": "18673ce5-016c-499c-e05a-3de920f70dfe",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 310
        }
      },
      "source": [
        "epochs = np.arange(5)+1\n",
        "import matplotlib.ticker as mtick\n",
        "import matplotlib.pyplot as plt\n",
        "import matplotlib.ticker as mticker\n",
        "%matplotlib inline\n",
        "\n",
        "plt.plot(epochs, val_accuracies_1k, 'bo', label='1k data points')\n",
        "plt.plot(epochs, val_accuracies_2k, 'x', label='2k data points')\n",
        "plt.plot(epochs, val_accuracies_4k, '--', label='4k data points',markersize = 20)\n",
        "plt.plot(epochs, val_accuracies, 'r', label='8k data points')\n",
        "plt.gca().xaxis.set_major_locator(mticker.MultipleLocator(1))\n",
        "plt.title('Training and validation accuracy with \\ndifferent number of data points used for training')\n",
        "plt.xlabel('Epochs')\n",
        "plt.ylabel('Accuracy')\n",
        "#plt.ylim(0.8,1)\n",
        "plt.gca().set_yticklabels(['{:.0f}%'.format(x*100) for x in plt.gca().get_yticks()]) \n",
        "plt.legend()\n",
        "plt.grid('off')\n",
        "plt.show()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "lyVYmxowMrFA"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    }
  ]
}